{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Double Q-Learning\n",
    "\n",
    "***Paper***: [Deep Reinforcement Learning with Double Q-learning](https://arxiv.org/pdf/1509.06461.pdf)\n",
    "\n",
    "Double Q-learning prevents a network from overestimating the value of a state \"by decomposing the max operation in the target into action selection and action evaluations\".\n",
    "\n",
    "In a typical DQN the value of a given state is estimated using:\n",
    "\n",
    "<img src=\"./img/double_q/q_learning_y.png\" alt=\"Drawing\" style=\"height: 50px;\"/>\n",
    "\n",
    "This is essentially the reward + the discounted Q value of the next state and the max action. The key is that the network used to calculate the max action is the target network.\n",
    "\n",
    "With double q-learning the local network is used (notice the subtle difference with the ***$\\theta^{'}$*** vs ***$\\theta$*** ).\n",
    "\n",
    "<img src=\"./img/double_q/double_q_learning_y.png\" alt=\"Drawing\" style=\"height: 50px;\"/>\n",
    "\n",
    "\n",
    "### Code\n",
    "\n",
    "In terms of code this is a very easy change to make - in stead of using \n",
    "\n",
    "```\n",
    "return self.qnetwork_target(next_states).detach().max(1)[1].unsqueeze(1)\n",
    "```\n",
    "\n",
    "for the max action we use \n",
    "\n",
    "```\n",
    "return self.qnetwork_local(next_states).detach().max(1)[1].unsqueeze(1)\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import gym\n",
    "\n",
    "\n",
    "from src.utils.Config import Config\n",
    "from src.utils.Logging import Logger\n",
    "from src.components.memory import ReplayBuffer\n",
    "from src.networks.models import QNetwork\n",
    "\n",
    "from src.utils.misc import train, watch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "env: \t\tEnvSpec(CartPole-v1)\n",
      "win condition: \t1905.0\n",
      "state space\t(4,)\n",
      "action space\t2\n",
      "device: \tcpu\n",
      "seed: \t\t123456789\n",
      "n_episodes: \t2000\n",
      "max_t: \t\t1000\n",
      "eps_start: \t1.0\n",
      "eps_end: \t0.01\n",
      "eps_decay: \t0.995\n",
      "eps_greedy: \tTrue\n",
      "noisy: \t\tFalse\n",
      "tau: \t\t0.001\n",
      "gamma: \t\t0.99\n",
      "lr: \t\t0.0005\n",
      "memory: \t<class 'src.components.memory.ReplayBuffer'>\n",
      "batch_size: \t64\n",
      "buffer_size: \t100000\n",
      "lr_annealing: \tFalse\n",
      "learn_every: \t4\n",
      "double_dqn: \tTrue\n",
      "model: \t\t<class 'src.networks.models.QNetwork'>\n",
      "save_loc: \tNone\n",
      "Logging at: logs/CartPole-v1/experiment-2020-04-16_15_16_21\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/gym/envs/registration.py:14: PkgResourcesDeprecationWarning: Parameters to load are deprecated.  Call .resolve and .require separately.\n",
      "  result = entry_point.load(False)\n"
     ]
    }
   ],
   "source": [
    "config = Config()\n",
    "\n",
    "config.env = gym.make('CartPole-v1')\n",
    "\n",
    "config.win_condition = 1905.0\n",
    "config.memory = ReplayBuffer\n",
    "config.model = QNetwork\n",
    "config.double_dqn = True\n",
    "config.print_config()\n",
    "\n",
    "logger = Logger(config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epi: 100\tAverage Score: 19.1400\tMean: 9.0000\tDuration: 0.0158\t#t_s: 8.00000\n",
      "Epi: 200\tAverage Score: 13.8700\tMean: 10.0000\tDuration: 0.0197\t#t_s: 9.00000\n",
      "Epi: 300\tAverage Score: 11.5200\tMean: 10.0000\tDuration: 0.0188\t#t_s: 9.00000\n",
      "Epi: 400\tAverage Score: 10.9500\tMean: 8.0000\tDuration: 0.0111\t#t_s: 7.000000\n",
      "Epi: 500\tAverage Score: 9.9300\tMean: 9.0000\tDuration: 0.0142\t#t_s: 8.0000000\n",
      "Epi: 600\tAverage Score: 9.8000\tMean: 10.0000\tDuration: 0.0222\t#t_s: 9.000000\n",
      "Epi: 700\tAverage Score: 9.5200\tMean: 9.0000\tDuration: 0.0507\t#t_s: 8.000000\n",
      "Epi: 800\tAverage Score: 9.5400\tMean: 10.0000\tDuration: 0.0121\t#t_s: 9.00000\n",
      "Epi: 900\tAverage Score: 9.4500\tMean: 8.0000\tDuration: 0.0114\t#t_s: 7.000000\n",
      "Epi: 1000\tAverage Score: 10.8700\tMean: 103.0000\tDuration: 0.1485\t#t_s: 102.0000\n",
      "Epi: 1100\tAverage Score: 16.9000\tMean: 10.0000\tDuration: 0.0166\t#t_s: 9.0000000\n",
      "Epi: 1200\tAverage Score: 27.3500\tMean: 52.0000\tDuration: 0.0734\t#t_s: 51.000000\n",
      "Epi: 1300\tAverage Score: 82.2800\tMean: 211.0000\tDuration: 0.4316\t#t_s: 210.0000\n",
      "Epi: 1400\tAverage Score: 226.9100\tMean: 278.0000\tDuration: 0.4169\t#t_s: 277.0000\n",
      "Epi: 1500\tAverage Score: 280.5100\tMean: 252.0000\tDuration: 0.3621\t#t_s: 251.0000\n",
      "Epi: 1600\tAverage Score: 262.7100\tMean: 235.0000\tDuration: 0.3477\t#t_s: 234.0000\n",
      "Epi: 1700\tAverage Score: 213.1700\tMean: 159.0000\tDuration: 0.2377\t#t_s: 158.0000\n",
      "Epi: 1800\tAverage Score: 166.1500\tMean: 110.0000\tDuration: 0.1633\t#t_s: 109.0000\n",
      "Epi: 1900\tAverage Score: 106.6000\tMean: 103.0000\tDuration: 0.1506\t#t_s: 102.0000\n",
      "Epi: 2000\tAverage Score: 101.9200\tMean: 103.0000\tDuration: 0.1433\t#t_s: 102.0000\n"
     ]
    }
   ],
   "source": [
    "train(config, logger)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11f447a58>]"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(logger.score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x1202476d8>]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(logger.score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "watch(config, logger.log_file_path)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
